#include <iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
class InetAddr
{
public:
	InetAddr(const struct sockaddr_in &ddr) : _addr(_addr)
	{
		GetAddress(&_ip, &_port);
	}
	std::string Ip()
	{
		return _ip;
	}
	uint16_t Port()
	{
		return _port;
	}

private:
	struct sockaddr_in _addr;

	std::string _ip;
	uint16_t _port;
	void GetAddress(std::string *ip, uint16_t *port)
	{
		*port = ntohs(_addr.sin_port);
		// 四字节ip转化为字符串风格
		*ip = inet_ntoa(_addr.sin_addr);
	}
};
